Test Case
 
Test Case Id:TC_PHYS_INQ_BV_01
Test Group Reference:INQ/
Purpose:Verify that the IUT as the initiator of the inquiry uses the correct inquiry hopping sequence when discovering which other Bluetooth devices are in range.
Only for IUTs supporting inquiry and using the 79-channel hopping scheme.

The test shall verify that
a) the IUT uses the general inquiry access code (GIAC) and its native clock CLKN to determine the inquiry hopping sequence
b) the IUT sequentially transmits on 2 different hop frequencies during each TX slot
c) 2 10 ms inquiry trains A and B with 16 hops each are used
d) the inquiry trains A and B are repeated at least Ninquiry = 256 times
e) at least 4 trains are transmitted subsequently
f) One inquiry instance is stopped latest when inquiryTO is reached
g) If repeated periodically, the interval between two inquiry procedures is determined randomly.
Configuration:BB_config
Defaults: 
Comments:Standard Reference:
1.C.47: "Specification of the Bluetooth System",1.1, Part B: "Baseband Specification", sections 9.5, 10.7.3 and 11.3.4.

Reference to selection criteria:
23.B.302/0.91: Bluetooth ICS and IXIT proforma, Annex B: "PICs Proforma for BB", Table: B:10 Item:1, Table: B:10 Item:5

20.B.354/0.91: Bluetooth Test Specification, Part B: "Test Suite Structure (TSS) and Test Purposes (TP)
For Baseband", Section 5.6.1.1.1 "TP/PHYS/INQ/BV-01"


There are 2 different sub steps for this test.
1) test uses GIAC
2) test uses reserved LAP for dedicated inquiry (only performed if IUT supports this feature)
 
Nr Label Behaviour Description Constraint Ref Verdict Comments
1   +IP_tester_bb     initialise tester
2     (TCV_test_repetition_counter := 1,
TCV_exit := 0, TCV_max_test_steps:=2,TCV_config_with_lc_component:=TRUE)
    The loop is repeated twice: one for GIAC and one for supported DIAC
3     REPEAT LTS_loop_test UNTIL [ (TCV_test_repetition_counter > TCV_max_test_steps) OR (TCV_exit <>0)]      
4       [TCV_exit <>0]     something went wrong during the loop
5 TB01      [TCV_test_repetition_counter = 1]   R error in first step
6 TB02      [TCV_test_repetition_counter = 2]   R error in second step
7 TB03     [TCV_exit = 0]   R loop was finished
LTS_loop_test
8   +LTS_define_test_parameters     depending on the value of the repetition the parameters for the test are initialised
9    CREATE (P_TCI:LT_tci ( TCV_lap ))     Creation of the real time PTC (P_TCI)
10     +TS_control_iut_initialisation_mtc     if initialisation fails, the test will be finished
11      CREATE(
P_LM: LT_lm( TCV_n_inquiry, TCV_lap, TCV_tso_id),
P_LC: TS_inquiry_hopp_sequence_79_p_lc (
TCV_lap, TCV_n_inquiry,
TCV_tso_id))

    Creation of the real time PTC (P_LM) and the postprocessing PTC (P_LC)
12      CREATE(
P_LM: LT_lm( TCV_n_inquiry, TCV_lap, TCV_tso_id),
P_LC: TS_inquiry_hopp_sequence_79_p_lc (
TCV_lap, TCV_n_inquiry,
TCV_tso_id, (TSO_oct_to_int(TSPX_inquiry_length)*1280000)/625))

    Creation of the real time PTC (P_LM) and the postprocessing PTC (P_LC)
13       ACTIVATE (DF_testbody_mtc (TCV_config_with_lc_component))      
14        START T_guard_var (400)      
15         CP_LM ? CM_CONTINUE Cm_start_inquiry   LM notifies LC that it can start the inquiry scan
16          CP_LC ! CM_CONTINUE Cm_start_inquiry    
17           CP_LC ? CM_CONTINUE Cm_start_inquiry   LC notifies TCI that it can change from inquiry scan ...
18            CP_TCI ! CM_CONTINUE Cm_start_inquiry   ... to inquiry
19             ? DONE (P_TCI, P_LM,P_LC) CANCEL T_guard_var     finalization of PTCs
20               [R <> pass]     If the verdict is not pass
21                (TCV_exit := 1)     the test will be finished
22               [R = pass]     If the verdict is pass ...
23                (TCV_test_repetition_counter := TCV_test_repetition_counter + 1)     ... increase counter
LTS_define_test_parameters
24    [TCV_test_repetition_counter = 1]      
25     (TCV_lap := TSC_lap_giac, TCV_n_inquiry := 256, TCV_tso_id := TSC_standard_tso_id)     First test step uses GIAC, standard TSO ID and Ninquiry=256 (trains A and B are repeated at least Ninquiry)
26    [TCV_test_repetition_counter = 2]      
27     (TCV_lap := TSPX_supported_diac, TCV_tso_id := TSO_int_to_oct (TSO_oct_to_int (TCV_tso_id) + 1, 2))     Second test step uses DIAC (a PIXIT value that must be in the range of 0x9E8B01-0x9E8B32 and 0x9E8B34-0x9E8B3F), the former TSO ID +1 and the same Ninquiry.
LT_lm ( var_n_inquiry:INTEGER; var_lap:LAP; var_tso_id:TSO_ID)
28   +LTS_bb_inquiry_iut_slave     tester performs inquiry to determine the clk_offset to IUT
29    ACTIVATE (DF_termination_p_lm)      
30      (TCV_tso_bool_result := TSO_set_tester_clock (TSC_clk_type_clk_offset, TCV_clock_offset_to_iut))     The clock offset is added to the testers clk to be able to follow the inquiry train
31      CP_LM ! CM_TSO_RESULT Cm_tso_result (TCV_tso_bool_result)   If TSO failed, the MSC will finish the test
32       [(TSO_oct_to_int(TSPX_inquiry_length)*1280) >= (var_n_inquiry*4*10000)]
    It is checked in the inquiry length is enough tor perform the test procedure. For example, if 'var_n_inquiry' is 256, the inquiry length should be, at least, 10.24 seg (TSPX_inquiry_length = 0x08)
33        CP_LM ! CM_CONTINUE
Cm_start_inquiry   from now on the IUT shall initiate inquiry
34        (TCV_tso_bool_result := TSO_monitor_inquiry_trains(var_tso_id, var_lap, 1, var_n_inquiry, TSC_start_scan_offset, 5))
    Start inquiry scan with A train at start frequency TSC_start_scan_offset and continue scanning till 5 inquiry instances have been finished (the IUT performs periodic inquiry).
35         (TCV_tso_bool_result := TSO_monitor_inquiry_trains(var_tso_id, var_lap, var_n_inquiry, TSC_start_scan_offset, ((TSO_oct_to_int(TSPX_inquiry_length)*1280000+30000000)/625)))
    Start inquiry scan with A train at start frequency TSC_start_scan_offset and continue scanning till InquiryTO plus 30 seconds
36          CP_LM ! CM_TSO_RESULT
Cm_tso_result (TCV_tso_bool_result)   If TSO failed, the MSC will finish the test
37       [TRUE]
    The inquiry length is not enough tor perform the test procedure.
38        CP_LM ! CM_CONTINUE
Cm_terminate_other_ptc
(I)
 
LTS_bb_inquiry_iut_slave
39    [TSPC_supports_inquiry_scan_79_channel OR TSPC_supports_inquiry_scan_23_channels]     if the IUT supports inquiry scan ....
40    ACTIVATE (DF_inquiry_page_p_lm)      
41     LC ! LM_LC_INQUIRY_REQ Lm_lc_inquiry_req (
TSC_lap_giac)
  set LT in Inquiry mode (with GIAC)
42      LC ? LM_LC_INQUIRY_CFM Lm_lc_inquiry_cfm (TSC_confirm_ind_ok)   the start of the Inquiry mode is performed
43       LC ? LM_LC_INQUIRY_IND (TCV_clock_offset_to_iut:=TSO_set_clock_offset_bit_15_to_1 (LM_LC_INQUIRY_IND.clock_offset)) Lm_lc_inquiry_ind (TSC_confirm_ind_ok, TSPX_bd_addr_iut, TSPX_class_of_device_iut, ?, ?, ?, ?)   Inquiry_responses of other devices are filtered out using the default.
44        LC ! LM_LC_STOP_INQUIRY_REQ Lm_lc_stop_inquiry_req   stop inquiry
45 TB04       LC ? LM_LC_STOP_INQUIRY_CFM Lm_lc_stop_inquiry_cfm (TSC_confirm_ind_ok) (P)  
46    [NOT (TSPC_supports_inquiry_scan_79_channel OR TSPC_supports_inquiry_scan_23_channels)]     Inquiry scan is not supported
LT_tci ( var_lap:LAP)
47   ACTIVATE (DF_termination_p_tci, DF_testbody_p_tci)      
48    +IP_iut_temporary_inquiry_scan_p_tci     initialisation procedure for the IUT. The IUT will be temporary initialised for inquiry scan to enable the tester to get the clk offset.
49     CP_TCI ? CM_CONTINUE Cm_start_inquiry   P_lm has the clock_offset. The IUT now shall be configured to start inquiry
50      +PR_iut_stop_inquiry_scan_and_start_inqiry_p_tci(var_lap)
    The iut performs a periodic inquiry till 5 sequences and after that, this procedure is finished.
51      TCI_HCI ! HCI_WRITE_SCAN_ENABLE [TCV_num_hci_command_packets <> '00'O]
Hci_write_scan_enable('00'O)
  0x00 -> no scans enabled.
52       TCI_HCI ? HCI_COMMAND_COMPLETE_EVENT (TCV_num_hci_command_packets:=HCI_COMMAND_COMPLETE_EVENT.num_hci_command_packets)
Hci_command_complete_event('04'O,?,TSC_command_opcode_hci_write_scan_enable, Return_parameters_status_only)
   
53        (TCV_inquiry_with_unlimited_responses:=TRUE)
    This variable is used in DF_testbody_p_tci to handle the Hci_inquiry_result_events in a correct way
54         TCI_HCI ! HCI_INQUIRY [TCV_num_hci_command_packets <> '00'O]
Hci_inquiry(TCV_lap,
TSPX_inquiry_length, '00'O)

  'num_response' parameter is set to '0' to assure that the inquiry lasts 'inquiry_length'
55          TCI_HCI ? HCI_COMMAND_COMPLETE_EVENT (TCV_num_hci_command_packets:=HCI_COMMAND_COMPLETE_EVENT.num_hci_command_packets)
Hci_command_complete_event(?, ?, TSC_command_opcode_hci_periodic_inquiry_mode, Return_parameters_status_only)
   
56           TCI_HCI ? HCI_INQUIRY_COMPLETE_EVENT
Hci_inquiry_complete_event(?)
  The inquiry complete event is not successful
 
Detailed Comment: 
Generated by Leonardo Delta 1.06 (Da Vinci Communications Ltd)